package com.smartleanx.module.hrm.dal.dataobject.dingDing;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;

/**
 * <p>
 *
 * </p>
 *
 * @author mybatis-plus
 * @since 2024-10-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ding_attendance_record")
public class DingAttendanceRecord extends Model<DingAttendanceRecord> {

    private static final long serialVersionUID = 1L;

    /**
     * 考勤ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;



    /**
     * 1、考勤机打卡（指纹/人脸打卡）2、IBeacon 3、钉钉考勤机（考勤机蓝牙打卡）4、用户打卡5、老板改签	6、审批系统 7、考勤系统 8、自动打卡
     */
    @TableField("sourceType")
    private Integer sourceType;


    /**
     * 1、上班 2、下班
     */
    @TableField("checkType")
    private Integer checkType;

    /**
     * 1、范围内 2、范围外  3、未打卡
     */
    @TableField("locationResult")
    private Integer locationResult;

    /**
     * 打卡员工id
     */
    @TableField("userId")
    private String userId;

    /**
     * 工作日
     */
    @TableField("workDate")
    private Long workDate;

    /**
     * 用户打卡定位精度
     */
    @TableField("userAccuracy")
    private String userAccuracy;

    /**
     * 班次id
     */
    @TableField("classId")
    private Long classId;

    /**
     * 用户打卡纬度。
     */
    @TableField("userLatitude")
    private String userLatitude;

    /**
     * 用户打卡经度。
     */
    @TableField("userLongitude")
    private String userLongitude;

    /**
     * 用户打卡地址
     */
    @TableField("userAddress")
    private String userAddress;

    /**
     * 打卡设备id
     */
    @TableField("deviceId")
    private String deviceId;

    /**
     * 定位方法
     */
    @TableField("locationMethod")
    private String locationMethod;

    /**
     * 1合法2不合法
     */
    @TableField("isLegal")
    private Integer isLegal;

    /**
     * 实际打卡时间
     */
    @TableField("userCheckTime")
    private Long userCheckTime;

    /**
     * 关联的审批实例ID，当该字段非空时，表示打卡记录与请假、加班等审批有关。
     */
    @TableField("procInstId")
    private String procInstId;

    /**
     * 计算迟到和早退，基准时间；也可作为排班打卡时间
     */
    @TableField("baseCheckTime")
    private String baseCheckTime;

    /**
     * 关联的审批ID，当该字段非空时，表示打卡记录与请假、加班等审批有关。
     */
    @TableField("approveId")
    private String approveId;

    /**
     * 1：正常		2：早退		3：迟到		4：严重迟到		5：旷工迟到		6：未打卡
     */
    @TableField("timeResult")
    private Integer timeResult;

    /**
     * 排班id
     */
    @TableField("planId")
    private String planId;

    /**
     * 考勤组id
     */
    @TableField("groupId")
    private String groupId;

    /**
     * 1、安全相关原因 2其他原因
     */
    @TableField("invalidRecordType")
    private Integer invalidRecordType;

    /**
     * 用户打卡wifi SSID
     */
    @TableField("userSsid")
    private String userSsid;

    /**
     * 用户打卡wifi Mac地址
     */
    @TableField("userMacAddr")
    private String userMacAddr;

    /**
     * 排班打卡时间。
     */
    @TableField("planCheckTime")
    private Long planCheckTime;

    /**
     * 基准地址
     */
    @TableField("baseAddress")
    private String baseAddress;

    /**
     * 基准经度。
     */
    @TableField("baseLongitude")
    private String baseLongitude;

    /**
     * 基准纬度。
     */
    @TableField("baseLatitude")
    private String baseLatitude;

    /**
     * 基准定位精度。
     */
    @TableField("baseAccuracy")
    private String baseAccuracy;

    /**
     * 基准wifi ssid
     */
    @TableField("baseSsid")
    private String baseSsid;

    /**
     * 基准Mac地址
     */
    @TableField("baseMacAddr")
    private String baseMacAddr;

    /**
     * 打卡记录创建时间
     */
    @TableField("gmtCreate")
    private Long gmtCreate;

    /**
     * 需要二次确认		对应的invalidRecordType异常信息的具体描述。
     */
    @TableField("invalidRecordMsg")
    private String invalidRecordMsg;

    /**
     * 打卡记录修改时间。
     */
    @TableField("gmtModified")
    private Long gmtModified;


    /**
     * 打卡备注
     */
    @TableField("outsideRemark")
    private String outsideRemark;


    /**
     * 打卡设备序列号
     */
    @TableField("deviceSN")
    private String deviceSN;


    /**
     * 关联的业务ID。
     */
    @TableField("bizId")
    private String bizId;


    /**
     * 拍照图片 URL。
     */
    @TableField("photoUrl")
    private String photoUrl;


    @TableField("tenant_id")
    private Integer tenantId;



}
